<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Assimp: cimport.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Assimp
   &#160;<span id="projectnumber">v3.0 (July 2012)</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_05450b5d2ab8e47c80b981c3855591de.html">include</a></li><li class="navelem"><a class="el" href="dir_a0054a07d891188db28151015716f171.html">assimp</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="cimport_8h.html#nested-classes">Classes</a> &#124;
<a href="cimport_8h.html#define-members">Macros</a> &#124;
<a href="cimport_8h.html#typedef-members">Typedefs</a> &#124;
<a href="cimport_8h.html#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">cimport.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_log_stream.html">aiLogStream</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">C-API: Represents a log stream.  <a href="structai_log_stream.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_property_store.html">aiPropertyStore</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">C-API: Represents an opaque set of settings to be used during importing.  <a href="structai_property_store.html#details">More...</a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a39bd8dc9e68cf3d9238e0e2ad7cd0138"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a39bd8dc9e68cf3d9238e0e2ad7cd0138">AI_FALSE</a>&#160;&#160;&#160;0</td></tr>
<tr class="memitem:a6b4fb3c6aa04e2e3b45a7fbd9f9f9d19"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a6b4fb3c6aa04e2e3b45a7fbd9f9f9d19">AI_TRUE</a>&#160;&#160;&#160;1</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:aaf9b3b6ed742722b3d0bbff0f4621691"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#aaf9b3b6ed742722b3d0bbff0f4621691">aiBool</a></td></tr>
<tr class="memdesc:aaf9b3b6ed742722b3d0bbff0f4621691"><td class="mdescLeft">&#160;</td><td class="mdescRight">Our own C boolean type.  <a href="cimport_8h.html#aaf9b3b6ed742722b3d0bbff0f4621691"></a><br/></td></tr>
<tr class="memitem:a8fd7aab231c7632030590290ca4f57d8"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a8fd7aab231c7632030590290ca4f57d8">aiLogStreamCallback</a> )(const char *, char *)</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a683b19fdda7fec063d07a412268a7a24"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a683b19fdda7fec063d07a412268a7a24">aiApplyPostProcessing</a> (const <a class="el" href="structai_scene.html">aiScene</a> *pScene, unsigned int pFlags)</td></tr>
<tr class="memdesc:a683b19fdda7fec063d07a412268a7a24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply post-processing to an already-imported scene.  <a href="cimport_8h.html#a683b19fdda7fec063d07a412268a7a24"></a><br/></td></tr>
<tr class="memitem:a775ac62607b198952861fa86d0c1cf12"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a775ac62607b198952861fa86d0c1cf12">aiAttachLogStream</a> (const <a class="el" href="structai_log_stream.html">aiLogStream</a> *stream)</td></tr>
<tr class="memdesc:a775ac62607b198952861fa86d0c1cf12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach a custom log stream to the libraries' logging system.  <a href="cimport_8h.html#a775ac62607b198952861fa86d0c1cf12"></a><br/></td></tr>
<tr class="memitem:ab6085941982ef6158f3aa8be87470602"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> <a class="el" href="structai_property_store.html">aiPropertyStore</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#ab6085941982ef6158f3aa8be87470602">aiCreatePropertyStore</a> (void)</td></tr>
<tr class="memdesc:ab6085941982ef6158f3aa8be87470602"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty property store.  <a href="cimport_8h.html#ab6085941982ef6158f3aa8be87470602"></a><br/></td></tr>
<tr class="memitem:ac54e5aad80038dad2d5d719b6857cbd9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#ac54e5aad80038dad2d5d719b6857cbd9">aiCreateQuaternionFromMatrix</a> (<a class="el" href="quaternion_8h.html#addecae9f142c2a57491547a1dab417c2">aiQuaternion</a> *quat, const <a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *mat)</td></tr>
<tr class="memdesc:ac54e5aad80038dad2d5d719b6857cbd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct a quaternion from a 3x3 rotation matrix.  <a href="cimport_8h.html#ac54e5aad80038dad2d5d719b6857cbd9"></a><br/></td></tr>
<tr class="memitem:a49e4401357fdd5eaa8e3e6d3e4191007"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a49e4401357fdd5eaa8e3e6d3e4191007">aiDecomposeMatrix</a> (const <a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *mat, <a class="el" href="vector3_8h.html#a47f446977120a9ca7d868353aad70b09">aiVector3D</a> *scaling, <a class="el" href="quaternion_8h.html#addecae9f142c2a57491547a1dab417c2">aiQuaternion</a> *rotation, <a class="el" href="vector3_8h.html#a47f446977120a9ca7d868353aad70b09">aiVector3D</a> *position)</td></tr>
<tr class="memdesc:a49e4401357fdd5eaa8e3e6d3e4191007"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompose a transformation matrix into its rotational, translational and scaling components.  <a href="cimport_8h.html#a49e4401357fdd5eaa8e3e6d3e4191007"></a><br/></td></tr>
<tr class="memitem:a8f1fe2e8ccc5f93484098114ae7071bf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a8f1fe2e8ccc5f93484098114ae7071bf">aiDetachAllLogStreams</a> (void)</td></tr>
<tr class="memdesc:a8f1fe2e8ccc5f93484098114ae7071bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detach all active log streams from the libraries' logging system.  <a href="cimport_8h.html#a8f1fe2e8ccc5f93484098114ae7071bf"></a><br/></td></tr>
<tr class="memitem:a8ba577aee1f86a7ce3b1b8dac238c68f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> aiReturn&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a8ba577aee1f86a7ce3b1b8dac238c68f">aiDetachLogStream</a> (const <a class="el" href="structai_log_stream.html">aiLogStream</a> *stream)</td></tr>
<tr class="memdesc:a8ba577aee1f86a7ce3b1b8dac238c68f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Detach a custom log stream from the libraries' logging system.  <a href="cimport_8h.html#a8ba577aee1f86a7ce3b1b8dac238c68f"></a><br/></td></tr>
<tr class="memitem:a54a7485c9422348b2f20adcbd192ed64"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a54a7485c9422348b2f20adcbd192ed64">aiEnableVerboseLogging</a> (<a class="el" href="cimport_8h.html#aaf9b3b6ed742722b3d0bbff0f4621691">aiBool</a> d)</td></tr>
<tr class="memdesc:a54a7485c9422348b2f20adcbd192ed64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable verbose logging.  <a href="cimport_8h.html#a54a7485c9422348b2f20adcbd192ed64"></a><br/></td></tr>
<tr class="memitem:abe72551b74cc4bc3c49349ce3014bc9b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#abe72551b74cc4bc3c49349ce3014bc9b">aiGetErrorString</a> ()</td></tr>
<tr class="memdesc:abe72551b74cc4bc3c49349ce3014bc9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the error text of the last failed import process.  <a href="cimport_8h.html#abe72551b74cc4bc3c49349ce3014bc9b"></a><br/></td></tr>
<tr class="memitem:ae9d578a1c5026dfd7e186507f9abc099"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#ae9d578a1c5026dfd7e186507f9abc099">aiGetExtensionList</a> (<a class="el" href="structai_string.html">aiString</a> *szOut)</td></tr>
<tr class="memdesc:ae9d578a1c5026dfd7e186507f9abc099"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a list of all file extensions supported by ASSIMP.  <a href="cimport_8h.html#ae9d578a1c5026dfd7e186507f9abc099"></a><br/></td></tr>
<tr class="memitem:a87ff5d0be7c313cd3a426ffabe0eacf9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a87ff5d0be7c313cd3a426ffabe0eacf9">aiGetMemoryRequirements</a> (const <a class="el" href="structai_scene.html">aiScene</a> *pIn, aiMemoryInfo *in)</td></tr>
<tr class="memdesc:a87ff5d0be7c313cd3a426ffabe0eacf9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the approximated storage required by an imported asset.  <a href="cimport_8h.html#a87ff5d0be7c313cd3a426ffabe0eacf9"></a><br/></td></tr>
<tr class="memitem:acf3f9c755c29ecf4761595dd95ba4397"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> <a class="el" href="structai_log_stream.html">aiLogStream</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#acf3f9c755c29ecf4761595dd95ba4397">aiGetPredefinedLogStream</a> (aiDefaultLogStream pStreams, const char *file)</td></tr>
<tr class="memdesc:acf3f9c755c29ecf4761595dd95ba4397"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get one of the predefine log streams.  <a href="cimport_8h.html#acf3f9c755c29ecf4761595dd95ba4397"></a><br/></td></tr>
<tr class="memitem:a19d7caadf4dd71dbb64c653f85a77f6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a19d7caadf4dd71dbb64c653f85a77f6a">aiIdentityMatrix3</a> (<a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *mat)</td></tr>
<tr class="memdesc:a19d7caadf4dd71dbb64c653f85a77f6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a 3x3 identity matrix.  <a href="cimport_8h.html#a19d7caadf4dd71dbb64c653f85a77f6a"></a><br/></td></tr>
<tr class="memitem:a0f1747ff56446a78f2583b4cb4e74190"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a0f1747ff56446a78f2583b4cb4e74190">aiIdentityMatrix4</a> (<a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *mat)</td></tr>
<tr class="memdesc:a0f1747ff56446a78f2583b4cb4e74190"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a 4x4 identity matrix.  <a href="cimport_8h.html#a0f1747ff56446a78f2583b4cb4e74190"></a><br/></td></tr>
<tr class="memitem:a09fe8ba0c8e91bf04b4c29556be53b6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a09fe8ba0c8e91bf04b4c29556be53b6d">aiImportFile</a> (const char *pFile, unsigned int pFlags)</td></tr>
<tr class="memdesc:a09fe8ba0c8e91bf04b4c29556be53b6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the given file and returns its content.  <a href="cimport_8h.html#a09fe8ba0c8e91bf04b4c29556be53b6d"></a><br/></td></tr>
<tr class="memitem:ae2b9815cac53dfcb2bf09aa9d8649894"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#ae2b9815cac53dfcb2bf09aa9d8649894">aiImportFileEx</a> (const char *pFile, unsigned int pFlags, <a class="el" href="structai_file_i_o.html">aiFileIO</a> *pFS)</td></tr>
<tr class="memdesc:ae2b9815cac53dfcb2bf09aa9d8649894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the given file using user-defined I/O functions and returns its content.  <a href="cimport_8h.html#ae2b9815cac53dfcb2bf09aa9d8649894"></a><br/></td></tr>
<tr class="memitem:aaced7b53ff4db400bde43484fc549e09"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#aaced7b53ff4db400bde43484fc549e09">aiImportFileExWithProperties</a> (const char *pFile, unsigned int pFlags, <a class="el" href="structai_file_i_o.html">aiFileIO</a> *pFS, const <a class="el" href="structai_property_store.html">aiPropertyStore</a> *pProps)</td></tr>
<tr class="memdesc:aaced7b53ff4db400bde43484fc549e09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="cimport_8h.html#ae2b9815cac53dfcb2bf09aa9d8649894" title="Reads the given file using user-defined I/O functions and returns its content.">aiImportFileEx</a>, but adds an extra parameter containing importer settings.  <a href="cimport_8h.html#aaced7b53ff4db400bde43484fc549e09"></a><br/></td></tr>
<tr class="memitem:affea94ac388f95baf0312f3140710037"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#affea94ac388f95baf0312f3140710037">aiImportFileFromMemory</a> (const char *pBuffer, unsigned int pLength, unsigned int pFlags, const char *pHint)</td></tr>
<tr class="memdesc:affea94ac388f95baf0312f3140710037"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the given file from a given memory buffer,.  <a href="cimport_8h.html#affea94ac388f95baf0312f3140710037"></a><br/></td></tr>
<tr class="memitem:ab4c91f391e7e857cfaaa57ae592bd026"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#ab4c91f391e7e857cfaaa57ae592bd026">aiImportFileFromMemoryWithProperties</a> (const char *pBuffer, unsigned int pLength, unsigned int pFlags, const char *pHint, const <a class="el" href="structai_property_store.html">aiPropertyStore</a> *pProps)</td></tr>
<tr class="memdesc:ab4c91f391e7e857cfaaa57ae592bd026"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="cimport_8h.html#affea94ac388f95baf0312f3140710037" title="Reads the given file from a given memory buffer,.">aiImportFileFromMemory</a>, but adds an extra parameter containing importer settings.  <a href="cimport_8h.html#ab4c91f391e7e857cfaaa57ae592bd026"></a><br/></td></tr>
<tr class="memitem:adf7ad488ca981fc8800e48e35ddc49e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> <a class="el" href="cimport_8h.html#aaf9b3b6ed742722b3d0bbff0f4621691">aiBool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#adf7ad488ca981fc8800e48e35ddc49e9">aiIsExtensionSupported</a> (const char *szExtension)</td></tr>
<tr class="memdesc:adf7ad488ca981fc8800e48e35ddc49e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether a given file extension is supported by ASSIMP.  <a href="cimport_8h.html#adf7ad488ca981fc8800e48e35ddc49e9"></a><br/></td></tr>
<tr class="memitem:ab8c8ff2689cfa49d09ee9efe6eb3fe84"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#ab8c8ff2689cfa49d09ee9efe6eb3fe84">aiMultiplyMatrix3</a> (<a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *dst, const <a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *src)</td></tr>
<tr class="memdesc:ab8c8ff2689cfa49d09ee9efe6eb3fe84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply two 3x3 matrices.  <a href="cimport_8h.html#ab8c8ff2689cfa49d09ee9efe6eb3fe84"></a><br/></td></tr>
<tr class="memitem:a899ed2e59e2986da29ae563189e3c0a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a899ed2e59e2986da29ae563189e3c0a1">aiMultiplyMatrix4</a> (<a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *dst, const <a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *src)</td></tr>
<tr class="memdesc:a899ed2e59e2986da29ae563189e3c0a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply two 4x4 matrices.  <a href="cimport_8h.html#a899ed2e59e2986da29ae563189e3c0a1"></a><br/></td></tr>
<tr class="memitem:a00a8db599403d4972ce70d97b9219080"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a00a8db599403d4972ce70d97b9219080">aiReleaseImport</a> (const <a class="el" href="structai_scene.html">aiScene</a> *pScene)</td></tr>
<tr class="memdesc:a00a8db599403d4972ce70d97b9219080"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases all resources associated with the given import process.  <a href="cimport_8h.html#a00a8db599403d4972ce70d97b9219080"></a><br/></td></tr>
<tr class="memitem:ac7e29d2f3bd4366bead505ed53f07108"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#ac7e29d2f3bd4366bead505ed53f07108">aiReleasePropertyStore</a> (<a class="el" href="structai_property_store.html">aiPropertyStore</a> *p)</td></tr>
<tr class="memdesc:ac7e29d2f3bd4366bead505ed53f07108"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a property store.  <a href="cimport_8h.html#ac7e29d2f3bd4366bead505ed53f07108"></a><br/></td></tr>
<tr class="memitem:a97c41fcf30966a553fdcc9d1a4f76ab8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a97c41fcf30966a553fdcc9d1a4f76ab8">aiSetImportPropertyFloat</a> (<a class="el" href="structai_property_store.html">aiPropertyStore</a> *store, const char *szName, float value)</td></tr>
<tr class="memdesc:a97c41fcf30966a553fdcc9d1a4f76ab8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a floating-point property.  <a href="cimport_8h.html#a97c41fcf30966a553fdcc9d1a4f76ab8"></a><br/></td></tr>
<tr class="memitem:abf360aa24fe332173192b8b3cf60de0f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#abf360aa24fe332173192b8b3cf60de0f">aiSetImportPropertyInteger</a> (<a class="el" href="structai_property_store.html">aiPropertyStore</a> *store, const char *szName, int value)</td></tr>
<tr class="memdesc:abf360aa24fe332173192b8b3cf60de0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an integer property.  <a href="cimport_8h.html#abf360aa24fe332173192b8b3cf60de0f"></a><br/></td></tr>
<tr class="memitem:a5816438e0d13170e01f0b89ff97368bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a5816438e0d13170e01f0b89ff97368bb">aiSetImportPropertyString</a> (<a class="el" href="structai_property_store.html">aiPropertyStore</a> *store, const char *szName, const <a class="el" href="structai_string.html">aiString</a> *st)</td></tr>
<tr class="memdesc:a5816438e0d13170e01f0b89ff97368bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a string property.  <a href="cimport_8h.html#a5816438e0d13170e01f0b89ff97368bb"></a><br/></td></tr>
<tr class="memitem:a1911c0b33902e5781025960e3425ea31"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a1911c0b33902e5781025960e3425ea31">aiTransformVecByMatrix3</a> (<a class="el" href="vector3_8h.html#a47f446977120a9ca7d868353aad70b09">aiVector3D</a> *vec, const <a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *mat)</td></tr>
<tr class="memdesc:a1911c0b33902e5781025960e3425ea31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transform a vector by a 3x3 matrix.  <a href="cimport_8h.html#a1911c0b33902e5781025960e3425ea31"></a><br/></td></tr>
<tr class="memitem:af137c3a3de84b8f74be16eb47f23e642"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#af137c3a3de84b8f74be16eb47f23e642">aiTransformVecByMatrix4</a> (<a class="el" href="vector3_8h.html#a47f446977120a9ca7d868353aad70b09">aiVector3D</a> *vec, const <a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *mat)</td></tr>
<tr class="memdesc:af137c3a3de84b8f74be16eb47f23e642"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transform a vector by a 4x4 matrix.  <a href="cimport_8h.html#af137c3a3de84b8f74be16eb47f23e642"></a><br/></td></tr>
<tr class="memitem:a1b173bd2b86b63583aad4e58dfb59218"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#a1b173bd2b86b63583aad4e58dfb59218">aiTransposeMatrix3</a> (<a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *mat)</td></tr>
<tr class="memdesc:a1b173bd2b86b63583aad4e58dfb59218"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transpose a 3x3 matrix.  <a href="cimport_8h.html#a1b173bd2b86b63583aad4e58dfb59218"></a><br/></td></tr>
<tr class="memitem:af08afb4724119139f0f205e003bfdca1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cimport_8h.html#af08afb4724119139f0f205e003bfdca1">aiTransposeMatrix4</a> (<a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *mat)</td></tr>
<tr class="memdesc:af08afb4724119139f0f205e003bfdca1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transpose a 4x4 matrix.  <a href="cimport_8h.html#af08afb4724119139f0f205e003bfdca1"></a><br/></td></tr>
</table>
<hr/><h2>Macro Definition Documentation</h2>
<a class="anchor" id="a39bd8dc9e68cf3d9238e0e2ad7cd0138"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AI_FALSE&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a6b4fb3c6aa04e2e3b45a7fbd9f9f9d19"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AI_TRUE&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="aaf9b3b6ed742722b3d0bbff0f4621691"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int <a class="el" href="cimport_8h.html#aaf9b3b6ed742722b3d0bbff0f4621691">aiBool</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Our own C boolean type. </p>

</div>
</div>
<a class="anchor" id="a8fd7aab231c7632030590290ca4f57d8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* aiLogStreamCallback)(const char *, char *)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a683b19fdda7fec063d07a412268a7a24"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a>* aiApplyPostProcessing </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structai_scene.html">aiScene</a> *&#160;</td>
          <td class="paramname"><em>pScene</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pFlags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Apply post-processing to an already-imported scene. </p>
<p>This is strictly equivalent to calling <a class="el" href="cimport_8h.html#a09fe8ba0c8e91bf04b4c29556be53b6d" title="Reads the given file and returns its content.">aiImportFile()</a>/<a class="el" href="cimport_8h.html#ae2b9815cac53dfcb2bf09aa9d8649894" title="Reads the given file using user-defined I/O functions and returns its content.">aiImportFileEx</a> with the same flags. However, you can use this separate function to inspect the imported scene first to fine-tune your post-processing setup. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">pScene</td><td>Scene to work on. </td></tr>
    <tr><td class="paramname">pFlags</td><td>Provide a bitwise combination of the <a class="el" href="postprocess_8h.html#a64795260b95f5a4b3f3dc1be4f52e410" title="Defines the flags for all possible post processing steps.">aiPostProcessSteps</a> flags. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A pointer to the post-processed data. Post processing is done in-place, meaning this is still the same <a class="el" href="structai_scene.html" title="The root structure of the imported data.">aiScene</a> which you passed for pScene. However, <em>if</em> post-processing failed, the scene could now be NULL. That's quite a rare case, post processing steps are not really designed to 'fail'. To be exact, the #aiProcess_ValidateDS flag is currently the only post processing step which can actually cause the scene to be reset to NULL. </dd></dl>

</div>
</div>
<a class="anchor" id="a775ac62607b198952861fa86d0c1cf12"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiAttachLogStream </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structai_log_stream.html">aiLogStream</a> *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Attach a custom log stream to the libraries' logging system. </p>
<p>Attaching a log stream can slightly reduce <a class="el" href="namespace_assimp.html" title="Assimp&#39;s CPP-API and all internal APIs.">Assimp</a>'s overall import performance. Multiple log-streams can be attached. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>Describes the new log stream. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note:</dt><dd>To ensure proepr destruction of the logging system, you need to manually call <a class="el" href="cimport_8h.html#a8ba577aee1f86a7ce3b1b8dac238c68f" title="Detach a custom log stream from the libraries&#39; logging system.">aiDetachLogStream()</a> on every single log stream you attach. Alternatively (for the lazy folks) <a class="el" href="cimport_8h.html#a8f1fe2e8ccc5f93484098114ae7071bf" title="Detach all active log streams from the libraries&#39; logging system.">aiDetachAllLogStreams</a> is provided. </dd></dl>

</div>
</div>
<a class="anchor" id="ab6085941982ef6158f3aa8be87470602"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> <a class="el" href="structai_property_store.html">aiPropertyStore</a>* aiCreatePropertyStore </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create an empty property store. </p>
<p>Property stores are used to collect import settings. </p>
<dl class="section return"><dt>Returns:</dt><dd>New property store. Property stores need to be manually destroyed using the <a class="el" href="cimport_8h.html#ac7e29d2f3bd4366bead505ed53f07108" title="Delete a property store.">aiReleasePropertyStore</a> API function. </dd></dl>

</div>
</div>
<a class="anchor" id="ac54e5aad80038dad2d5d719b6857cbd9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiCreateQuaternionFromMatrix </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="quaternion_8h.html#addecae9f142c2a57491547a1dab417c2">aiQuaternion</a> *&#160;</td>
          <td class="paramname"><em>quat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *&#160;</td>
          <td class="paramname"><em>mat</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Construct a quaternion from a 3x3 rotation matrix. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">quat</td><td>Receives the output quaternion. </td></tr>
    <tr><td class="paramname">mat</td><td>Matrix to 'quaternionize'. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd>aiQuaternion(const aiMatrix3x3&amp; pRotMatrix) </dd></dl>

</div>
</div>
<a class="anchor" id="a49e4401357fdd5eaa8e3e6d3e4191007"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiDecomposeMatrix </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *&#160;</td>
          <td class="paramname"><em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="vector3_8h.html#a47f446977120a9ca7d868353aad70b09">aiVector3D</a> *&#160;</td>
          <td class="paramname"><em>scaling</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="quaternion_8h.html#addecae9f142c2a57491547a1dab417c2">aiQuaternion</a> *&#160;</td>
          <td class="paramname"><em>rotation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="vector3_8h.html#a47f446977120a9ca7d868353aad70b09">aiVector3D</a> *&#160;</td>
          <td class="paramname"><em>position</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decompose a transformation matrix into its rotational, translational and scaling components. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat</td><td>Matrix to decompose </td></tr>
    <tr><td class="paramname">scaling</td><td>Receives the scaling component </td></tr>
    <tr><td class="paramname">rotation</td><td>Receives the rotational component </td></tr>
    <tr><td class="paramname">position</td><td>Receives the translational component. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classai_matrix4x4t.html#a241f5c3b20a8e4b1842a9e38790a0a34" title="Decompose a trafo matrix into its original components.">aiMatrix4x4::Decompose</a> (<a class="el" href="vector3_8h.html#a47f446977120a9ca7d868353aad70b09">aiVector3D</a>&amp;, <a class="el" href="quaternion_8h.html#addecae9f142c2a57491547a1dab417c2">aiQuaternion</a>&amp;, <a class="el" href="vector3_8h.html#a47f446977120a9ca7d868353aad70b09">aiVector3D</a>&amp;) const; </dd></dl>

</div>
</div>
<a class="anchor" id="a8f1fe2e8ccc5f93484098114ae7071bf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiDetachAllLogStreams </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Detach all active log streams from the libraries' logging system. </p>
<p>This ensures that the logging system is terminated properly and all resources allocated by it are actually freed. If you attached a stream, don't forget to detach it again. </p>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="cimport_8h.html#a775ac62607b198952861fa86d0c1cf12" title="Attach a custom log stream to the libraries&#39; logging system.">aiAttachLogStream</a> </dd>
<dd>
<a class="el" href="cimport_8h.html#a8ba577aee1f86a7ce3b1b8dac238c68f" title="Detach a custom log stream from the libraries&#39; logging system.">aiDetachLogStream</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8ba577aee1f86a7ce3b1b8dac238c68f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> aiReturn aiDetachLogStream </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structai_log_stream.html">aiLogStream</a> *&#160;</td>
          <td class="paramname"><em>stream</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Detach a custom log stream from the libraries' logging system. </p>
<p>This is the counterpart of #aiAttachPredefinedLogStream. If you attached a stream, don't forget to detach it again. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">stream</td><td>The log stream to be detached. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>AI_SUCCESS if the log stream has been detached successfully. </dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="cimport_8h.html#a8f1fe2e8ccc5f93484098114ae7071bf" title="Detach all active log streams from the libraries&#39; logging system.">aiDetachAllLogStreams</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a54a7485c9422348b2f20adcbd192ed64"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiEnableVerboseLogging </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="cimport_8h.html#aaf9b3b6ed742722b3d0bbff0f4621691">aiBool</a>&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enable verbose logging. </p>
<p>Verbose logging includes debug-related stuff and detailed import statistics. This can have severe impact on import performance and memory consumption. However, it might be useful to find out why a file didn't read correctly. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">d</td><td>AI_TRUE or AI_FALSE, your decision. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abe72551b74cc4bc3c49349ce3014bc9b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const char* aiGetErrorString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the error text of the last failed import process. </p>
<dl class="section return"><dt>Returns:</dt><dd>A textual description of the error that occurred at the last import process. NULL if there was no error. There can't be an error if you got a non-NULL <a class="el" href="structai_scene.html" title="The root structure of the imported data.">aiScene</a> from <a class="el" href="cimport_8h.html#a09fe8ba0c8e91bf04b4c29556be53b6d" title="Reads the given file and returns its content.">aiImportFile</a>/<a class="el" href="cimport_8h.html#ae2b9815cac53dfcb2bf09aa9d8649894" title="Reads the given file using user-defined I/O functions and returns its content.">aiImportFileEx</a>/<a class="el" href="cimport_8h.html#a683b19fdda7fec063d07a412268a7a24" title="Apply post-processing to an already-imported scene.">aiApplyPostProcessing</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="ae9d578a1c5026dfd7e186507f9abc099"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiGetExtensionList </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structai_string.html">aiString</a> *&#160;</td>
          <td class="paramname"><em>szOut</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a list of all file extensions supported by ASSIMP. </p>
<p>If a file extension is contained in the list this does, of course, not mean that ASSIMP is able to load all files with this extension. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">szOut</td><td>String to receive the extension list. Format of the list: "*.3ds;*.obj;*.dae". NULL is not a valid parameter. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a87ff5d0be7c313cd3a426ffabe0eacf9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiGetMemoryRequirements </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structai_scene.html">aiScene</a> *&#160;</td>
          <td class="paramname"><em>pIn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">aiMemoryInfo *&#160;</td>
          <td class="paramname"><em>in</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the approximated storage required by an imported asset. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">pIn</td><td>Input asset. </td></tr>
    <tr><td class="paramname">in</td><td>Data structure to be filled. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="acf3f9c755c29ecf4761595dd95ba4397"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> <a class="el" href="structai_log_stream.html">aiLogStream</a> aiGetPredefinedLogStream </td>
          <td>(</td>
          <td class="paramtype">aiDefaultLogStream&#160;</td>
          <td class="paramname"><em>pStreams</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get one of the predefine log streams. </p>
<p>This is the quick'n'easy solution to access <a class="el" href="namespace_assimp.html" title="Assimp&#39;s CPP-API and all internal APIs.">Assimp</a>'s log system. Attaching a log stream can slightly reduce <a class="el" href="namespace_assimp.html" title="Assimp&#39;s CPP-API and all internal APIs.">Assimp</a>'s overall import performance.</p>
<p>Usage is rather simple (this will stream the log to a file, named log.txt, and the stdout stream of the process: </p>
<div class="fragment"><div class="line">      <span class="keyword">struct </span><a class="code" href="structai_log_stream.html" title="C-API: Represents a log stream.">aiLogStream</a> c;</div>
<div class="line">      c = <a class="code" href="cimport_8h.html#acf3f9c755c29ecf4761595dd95ba4397" title="Get one of the predefine log streams.">aiGetPredefinedLogStream</a>(aiDefaultLogStream_FILE,<span class="stringliteral">&quot;log.txt&quot;</span>);</div>
<div class="line">      <a class="code" href="cimport_8h.html#a775ac62607b198952861fa86d0c1cf12" title="Attach a custom log stream to the libraries&#39; logging system.">aiAttachLogStream</a>(&amp;c);</div>
<div class="line">      c = <a class="code" href="cimport_8h.html#acf3f9c755c29ecf4761595dd95ba4397" title="Get one of the predefine log streams.">aiGetPredefinedLogStream</a>(aiDefaultLogStream_STDOUT,NULL);</div>
<div class="line">      <a class="code" href="cimport_8h.html#a775ac62607b198952861fa86d0c1cf12" title="Attach a custom log stream to the libraries&#39; logging system.">aiAttachLogStream</a>(&amp;c);</div>
</div><!-- fragment --><dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">pStreams</td><td>One of the #aiDefaultLogStream enumerated values. </td></tr>
    <tr><td class="paramname">file</td><td>Solely for the #aiDefaultLogStream_FILE flag: specifies the file to write to. Pass NULL for all other flags. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>The log stream. callback is set to NULL if something went wrong. </dd></dl>

</div>
</div>
<a class="anchor" id="a19d7caadf4dd71dbb64c653f85a77f6a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiIdentityMatrix3 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a 3x3 identity matrix. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat</td><td>Matrix to receive its personal identity </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0f1747ff56446a78f2583b4cb4e74190"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiIdentityMatrix4 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a 4x4 identity matrix. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat</td><td>Matrix to receive its personal identity </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a09fe8ba0c8e91bf04b4c29556be53b6d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a>* aiImportFile </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pFile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pFlags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads the given file and returns its content. </p>
<p>If the call succeeds, the imported data is returned in an <a class="el" href="structai_scene.html" title="The root structure of the imported data.">aiScene</a> structure. The data is intended to be read-only, it stays property of the ASSIMP library and will be stable until <a class="el" href="cimport_8h.html#a00a8db599403d4972ce70d97b9219080" title="Releases all resources associated with the given import process.">aiReleaseImport()</a> is called. After you're done with it, call <a class="el" href="cimport_8h.html#a00a8db599403d4972ce70d97b9219080" title="Releases all resources associated with the given import process.">aiReleaseImport()</a> to free the resources associated with this file. If the import fails, NULL is returned instead. Call <a class="el" href="cimport_8h.html#abe72551b74cc4bc3c49349ce3014bc9b" title="Returns the error text of the last failed import process.">aiGetErrorString()</a> to retrieve a human-readable error text. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">pFile</td><td>Path and filename of the file to be imported, expected to be a null-terminated c-string. NULL is not a valid value. </td></tr>
    <tr><td class="paramname">pFlags</td><td>Optional post processing steps to be executed after a successful import. Provide a bitwise combination of the <a class="el" href="postprocess_8h.html#a64795260b95f5a4b3f3dc1be4f52e410" title="Defines the flags for all possible post processing steps.">aiPostProcessSteps</a> flags. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Pointer to the imported data or NULL if the import failed. </dd></dl>

</div>
</div>
<a class="anchor" id="ae2b9815cac53dfcb2bf09aa9d8649894"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a>* aiImportFileEx </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pFile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pFlags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structai_file_i_o.html">aiFileIO</a> *&#160;</td>
          <td class="paramname"><em>pFS</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads the given file using user-defined I/O functions and returns its content. </p>
<p>If the call succeeds, the imported data is returned in an <a class="el" href="structai_scene.html" title="The root structure of the imported data.">aiScene</a> structure. The data is intended to be read-only, it stays property of the ASSIMP library and will be stable until <a class="el" href="cimport_8h.html#a00a8db599403d4972ce70d97b9219080" title="Releases all resources associated with the given import process.">aiReleaseImport()</a> is called. After you're done with it, call <a class="el" href="cimport_8h.html#a00a8db599403d4972ce70d97b9219080" title="Releases all resources associated with the given import process.">aiReleaseImport()</a> to free the resources associated with this file. If the import fails, NULL is returned instead. Call <a class="el" href="cimport_8h.html#abe72551b74cc4bc3c49349ce3014bc9b" title="Returns the error text of the last failed import process.">aiGetErrorString()</a> to retrieve a human-readable error text. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">pFile</td><td>Path and filename of the file to be imported, expected to be a null-terminated c-string. NULL is not a valid value. </td></tr>
    <tr><td class="paramname">pFlags</td><td>Optional post processing steps to be executed after a successful import. Provide a bitwise combination of the <a class="el" href="postprocess_8h.html#a64795260b95f5a4b3f3dc1be4f52e410" title="Defines the flags for all possible post processing steps.">aiPostProcessSteps</a> flags. </td></tr>
    <tr><td class="paramname">pFS</td><td><a class="el" href="structai_file_i_o.html" title="C-API: File system callbacks.">aiFileIO</a> structure. Will be used to open the model file itself and any other files the loader needs to open. Pass NULL to use the default implementation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Pointer to the imported data or NULL if the import failed. </dd></dl>
<dl class="section note"><dt>Note:</dt><dd>Include &lt;aiFileIO.h&gt; for the definition of <a class="el" href="structai_file_i_o.html" title="C-API: File system callbacks.">aiFileIO</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="aaced7b53ff4db400bde43484fc549e09"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a>* aiImportFileExWithProperties </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pFile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pFlags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structai_file_i_o.html">aiFileIO</a> *&#160;</td>
          <td class="paramname"><em>pFS</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structai_property_store.html">aiPropertyStore</a> *&#160;</td>
          <td class="paramname"><em>pProps</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Same as <a class="el" href="cimport_8h.html#ae2b9815cac53dfcb2bf09aa9d8649894" title="Reads the given file using user-defined I/O functions and returns its content.">aiImportFileEx</a>, but adds an extra parameter containing importer settings. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">pProps</td><td><a class="el" href="structai_property_store.html" title="C-API: Represents an opaque set of settings to be used during importing.">aiPropertyStore</a> instance containing import settings. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="cimport_8h.html#ae2b9815cac53dfcb2bf09aa9d8649894" title="Reads the given file using user-defined I/O functions and returns its content.">aiImportFileEx</a> </dd></dl>

</div>
</div>
<a class="anchor" id="affea94ac388f95baf0312f3140710037"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a>* aiImportFileFromMemory </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pFlags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pHint</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads the given file from a given memory buffer,. </p>
<p>If the call succeeds, the contents of the file are returned as a pointer to an <a class="el" href="structai_scene.html" title="The root structure of the imported data.">aiScene</a> object. The returned data is intended to be read-only, the importer keeps ownership of the data and will destroy it upon destruction. If the import fails, NULL is returned. A human-readable error description can be retrieved by calling <a class="el" href="cimport_8h.html#abe72551b74cc4bc3c49349ce3014bc9b" title="Returns the error text of the last failed import process.">aiGetErrorString()</a>. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">pBuffer</td><td>Pointer to the file data </td></tr>
    <tr><td class="paramname">pLength</td><td>Length of pBuffer, in bytes </td></tr>
    <tr><td class="paramname">pFlags</td><td>Optional post processing steps to be executed after a successful import. Provide a bitwise combination of the <a class="el" href="postprocess_8h.html#a64795260b95f5a4b3f3dc1be4f52e410" title="Defines the flags for all possible post processing steps.">aiPostProcessSteps</a> flags. If you wish to inspect the imported scene first in order to fine-tune your post-processing setup, consider to use <a class="el" href="cimport_8h.html#a683b19fdda7fec063d07a412268a7a24" title="Apply post-processing to an already-imported scene.">aiApplyPostProcessing()</a>. </td></tr>
    <tr><td class="paramname">pHint</td><td>An additional hint to the library. If this is a non empty string, the library looks for a loader to support the file extension specified by pHint and passes the file to the first matching loader. If this loader is unable to completely the request, the library continues and tries to determine the file format on its own, a task that may or may not be successful. Check the return value, and you'll know ... </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A pointer to the imported data, NULL if the import failed.</dd></dl>
<dl class="section note"><dt>Note:</dt><dd>This is a straightforward way to decode models from memory buffers, but it doesn't handle model formats spreading their data across multiple files or even directories. Examples include OBJ or MD3, which outsource parts of their material stuff into external scripts. If you need the full functionality, provide a custom IOSystem to make <a class="el" href="namespace_assimp.html" title="Assimp&#39;s CPP-API and all internal APIs.">Assimp</a> find these files. </dd></dl>

</div>
</div>
<a class="anchor" id="ab4c91f391e7e857cfaaa57ae592bd026"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> const <a class="el" href="structai_scene.html">aiScene</a>* aiImportFileFromMemoryWithProperties </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pFlags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pHint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structai_property_store.html">aiPropertyStore</a> *&#160;</td>
          <td class="paramname"><em>pProps</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Same as <a class="el" href="cimport_8h.html#affea94ac388f95baf0312f3140710037" title="Reads the given file from a given memory buffer,.">aiImportFileFromMemory</a>, but adds an extra parameter containing importer settings. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">pProps</td><td><a class="el" href="structai_property_store.html" title="C-API: Represents an opaque set of settings to be used during importing.">aiPropertyStore</a> instance containing import settings. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="cimport_8h.html#affea94ac388f95baf0312f3140710037" title="Reads the given file from a given memory buffer,.">aiImportFileFromMemory</a> </dd></dl>

</div>
</div>
<a class="anchor" id="adf7ad488ca981fc8800e48e35ddc49e9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> <a class="el" href="cimport_8h.html#aaf9b3b6ed742722b3d0bbff0f4621691">aiBool</a> aiIsExtensionSupported </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>szExtension</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns whether a given file extension is supported by ASSIMP. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">szExtension</td><td>Extension for which the function queries support for. Must include a leading dot '.'. Example: ".3ds", ".md3" </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>AI_TRUE if the file extension is supported. </dd></dl>

</div>
</div>
<a class="anchor" id="ab8c8ff2689cfa49d09ee9efe6eb3fe84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiMultiplyMatrix3 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Multiply two 3x3 matrices. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>First factor, receives result. </td></tr>
    <tr><td class="paramname">src</td><td>Matrix to be multiplied with 'dst'. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a899ed2e59e2986da29ae563189e3c0a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiMultiplyMatrix4 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Multiply two 4x4 matrices. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">dst</td><td>First factor, receives result. </td></tr>
    <tr><td class="paramname">src</td><td>Matrix to be multiplied with 'dst'. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a00a8db599403d4972ce70d97b9219080"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiReleaseImport </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structai_scene.html">aiScene</a> *&#160;</td>
          <td class="paramname"><em>pScene</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Releases all resources associated with the given import process. </p>
<p>Call this function after you're done with the imported data. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">pScene</td><td>The imported data to release. NULL is a valid value. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac7e29d2f3bd4366bead505ed53f07108"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiReleasePropertyStore </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structai_property_store.html">aiPropertyStore</a> *&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete a property store. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Property store to be deleted. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a97c41fcf30966a553fdcc9d1a4f76ab8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiSetImportPropertyFloat </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structai_property_store.html">aiPropertyStore</a> *&#160;</td>
          <td class="paramname"><em>store</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>szName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a floating-point property. </p>
<p>This is the C-version of <a class="el" href="class_assimp_1_1_importer.html#ab264807393b68662d1672c2b05e1c0cd" title="Set a floating-point configuration property.">Assimp::Importer::SetPropertyFloat()</a>. In the C interface, properties are always shared by all imports. It is not possible to specify them per import.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">szName</td><td>Name of the configuration property to be set. All supported public properties are defined in the <a class="el" href="config_8h.html" title="Defines constants for configurable properties for the library.">config.h</a> header file (#AI_CONFIG_XXX). </td></tr>
    <tr><td class="paramname">value</td><td>New value for the property </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="abf360aa24fe332173192b8b3cf60de0f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiSetImportPropertyInteger </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structai_property_store.html">aiPropertyStore</a> *&#160;</td>
          <td class="paramname"><em>store</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>szName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set an integer property. </p>
<p>This is the C-version of <a class="el" href="class_assimp_1_1_importer.html#aa50eba6120a9b9805d0c2b02f1187165" title="Set an integer configuration property.">Assimp::Importer::SetPropertyInteger()</a>. In the C interface, properties are always shared by all imports. It is not possible to specify them per import.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">szName</td><td>Name of the configuration property to be set. All supported public properties are defined in the <a class="el" href="config_8h.html" title="Defines constants for configurable properties for the library.">config.h</a> header file (#AI_CONFIG_XXX). </td></tr>
    <tr><td class="paramname">value</td><td>New value for the property </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5816438e0d13170e01f0b89ff97368bb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiSetImportPropertyString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structai_property_store.html">aiPropertyStore</a> *&#160;</td>
          <td class="paramname"><em>store</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>szName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structai_string.html">aiString</a> *&#160;</td>
          <td class="paramname"><em>st</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a string property. </p>
<p>This is the C-version of <a class="el" href="class_assimp_1_1_importer.html#a8f79ecb5c6f67a76fc87654c32986e8e" title="Set a string configuration property.">Assimp::Importer::SetPropertyString()</a>. In the C interface, properties are always shared by all imports. It is not possible to specify them per import.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">property</td><td>store to modify. Use <a class="el" href="cimport_8h.html#ab6085941982ef6158f3aa8be87470602" title="Create an empty property store.">aiCreatePropertyStore</a> to obtain a store. </td></tr>
    <tr><td class="paramname">szName</td><td>Name of the configuration property to be set. All supported public properties are defined in the <a class="el" href="config_8h.html" title="Defines constants for configurable properties for the library.">config.h</a> header file (#AI_CONFIG_XXX). </td></tr>
    <tr><td class="paramname">value</td><td>New value for the property </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1911c0b33902e5781025960e3425ea31"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiTransformVecByMatrix3 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vector3_8h.html#a47f446977120a9ca7d868353aad70b09">aiVector3D</a> *&#160;</td>
          <td class="paramname"><em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *&#160;</td>
          <td class="paramname"><em>mat</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transform a vector by a 3x3 matrix. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">vec</td><td>Vector to be transformed. </td></tr>
    <tr><td class="paramname">mat</td><td>Matrix to transform the vector with. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af137c3a3de84b8f74be16eb47f23e642"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiTransformVecByMatrix4 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="vector3_8h.html#a47f446977120a9ca7d868353aad70b09">aiVector3D</a> *&#160;</td>
          <td class="paramname"><em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *&#160;</td>
          <td class="paramname"><em>mat</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transform a vector by a 4x4 matrix. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">vec</td><td>Vector to be transformed. </td></tr>
    <tr><td class="paramname">mat</td><td>Matrix to transform the vector with. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1b173bd2b86b63583aad4e58dfb59218"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiTransposeMatrix3 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="matrix3x3_8h.html#a426f4ef106ae41b39f80d120ce495ec2">aiMatrix3x3</a> *&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transpose a 3x3 matrix. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat</td><td>Pointer to the matrix to be transposed </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af08afb4724119139f0f205e003bfdca1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="defs_8h.html#a7d617d307e656cb6ff315ba71ff958d4">ASSIMP_API</a> void aiTransposeMatrix4 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="matrix4x4_8h.html#a4bd7df03fb0907421d6b7068e172b911">aiMatrix4x4</a> *&#160;</td>
          <td class="paramname"><em>mat</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transpose a 4x4 matrix. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat</td><td>Pointer to the matrix to be transposed </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jul 10 2012 17:55:53 for Assimp by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.1
</small></address>
</body>
</html>
